package org.example.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.scheduledEntity.ScheduSpringCron;

import java.util.List;

/**
 * @author 张在成
 */
@Mapper
public interface ScheduleTaskMapper {

    /**
     *  获取全部定时任务列表
     * @return 定时任务列表
     */
    List<ScheduSpringCron> getScheduleTaskList();

    /**
     * 新增定时任务
     * @param springCron
     * @return 受影响的行数
     */
    boolean insertScheduleTask(ScheduSpringCron springCron);

    /**
     * 批量新增定时任务
     * @param springCron
     * @return 受影响的行数
     */
    boolean insertBatchScheduleTask(List<ScheduSpringCron> springCron);

    /**
     * 批量修改定时任务
     * @param springCron
     * @return 受影响的行数
     */
    boolean updateBatchScheduleTask(List<ScheduSpringCron> springCron);

    /**
     * 单个修改定时任务
     * @param springCron
     * @return 受影响的行数
     */
    boolean updateScheduleTask(ScheduSpringCron springCron);


    /**
     * 根据id查询定时任务
     * @param cronId
     * @return 一条附件信息记录
     */
    ScheduSpringCron getScheduleTaskByCronId(@Param("cronId") Integer cronId);


    /**
     * 根据cronKey查询定时任务
     * @param cronKey
     * @return 一条定时任务信息记录
     */
    ScheduSpringCron getScheduleTaskByCronKey(@Param("cronKey") String cronKey);



    /**
     * 根据主键ID删除定时任务
     * @param cronId
     * @return 受影响的行数
     */
    boolean delScheduleTask(@Param("cronId") Integer cronId);

}
